/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mrp.web;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import mrp.beans.PedidoBean;
import mrp.beans.PedidoBean.tablaClienteSeleccionarOrdenCompra;
import mrp.beans.UsuarioBean;
import mrp.beans.util.JsfUtil;
import mrp.persistencia.entity.Vendedor;
import mrp.login.Login;
import mrp.persistencia.entity.Empresa;
import mrp.persistencia.entity.Persona;
import org.primefaces.component.calendar.Calendar;
import org.primefaces.component.dialog.Dialog;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.component.inputtextarea.InputTextarea;

/**
 *
 * @author root
 */
@ManagedBean(name="pedidoWeb")
@SessionScoped
public class PedidoWeb implements Serializable{
    @ManagedProperty("#{usuarioBean}")
    private UsuarioBean usuarioBean;
    @ManagedProperty("#{login}")
    private Login login;

    private PedidoBean pedidoBean;
            
    public PedidoWeb() {
        this.pedidoBean=new PedidoBean();
    }

    String mensaje="";
    
    public Login getLogin() {
        return login;
    }

    public void setLogin(Login login) {
        this.login = login;
    }

    public UsuarioBean getUsuarioBean() {
        return usuarioBean;
    }

    public void setUsuarioBean(UsuarioBean usuarioBean) {
        this.usuarioBean = usuarioBean;
    }
    
    //_______________________________________________________________________________________________ 
    //----------------------------Componentes de ingreso--------------------------------     
        private InputText textNumeroOrdenCompra;
        private InputText textNumeroNotaPedido;
        private Calendar  calFechaEntregaOrdenCompra; 
        private InputText textCedulaRucOrdenCompra; 
        private InputText textClienteOrdenCompra; 
        private InputText textTelefonoOrdenCompra; 
        private InputText textTelefonoCelularOrdenCompra; 
        private InputText textPrioridadClienteOrdenCompra; 
        private InputText textDireccionClienteOrdenCompra;
        private InputText textFechaIngresoClienteOrdenCompra; 
        private InputText textVendedorOrdenCompra;
        private InputTextarea textObservacionesOrdenCompra;
        private InputText textTotalParesOrdenCompra;
        private InputText textTotalPrecioOrdenCompra;
            //--componentes de seleccion cliente
                private InputText textCedulaRucClienteSeleccionarOrdenCompra;
                private InputText textNombreClienteSeleccionarOrdenCompra;
                private List <PedidoBean.tablaClienteSeleccionarOrdenCompra> tablaClienteSeleccionar;
                private PedidoBean.tablaClienteSeleccionarOrdenCompra tablaClienteSeleccionarSeleccionado;
           //--componentes de seleccion vendedor
                private InputText textCedulaRucVendedorSeleccionarOrdenCompra;
                private InputText textNombreVendedorSeleccionarOrdenCompra;
                private List <Vendedor> tablaVendedorSeleccionar;
                private Vendedor tablaVendedorSeleccionarSeleccionado;     
    //_______________________________________________________________________________________________  
    //********************metodos Getters and Setters***************************         

    public Calendar getCalFechaEntregaOrdenCompra() {
        return calFechaEntregaOrdenCompra;
    }

    public void setCalFechaEntregaOrdenCompra(Calendar calFechaEntregaOrdenCompra) {
        this.calFechaEntregaOrdenCompra = calFechaEntregaOrdenCompra;
    }

    public PedidoBean getPedidoBean() {
        return pedidoBean;
    }

    public void setPedidoBean(PedidoBean ordencompraBean) {
        this.pedidoBean = ordencompraBean;
    }

    public List<tablaClienteSeleccionarOrdenCompra> getTablaClienteSeleccionar() {
        return tablaClienteSeleccionar;
    }

    public void setTablaClienteSeleccionar(List<tablaClienteSeleccionarOrdenCompra> tablaClienteSeleccionar) {
        this.tablaClienteSeleccionar = tablaClienteSeleccionar;
    }

    public tablaClienteSeleccionarOrdenCompra getTablaClienteSeleccionarSeleccionado() {
        return tablaClienteSeleccionarSeleccionado;
    }

    public void setTablaClienteSeleccionarSeleccionado(tablaClienteSeleccionarOrdenCompra tablaClienteSeleccionarSeleccionado) {
        this.tablaClienteSeleccionarSeleccionado = tablaClienteSeleccionarSeleccionado;
    }

    public InputText getTextCedulaRucClienteSeleccionarOrdenCompra() {
        return textCedulaRucClienteSeleccionarOrdenCompra;
    }

    public void setTextCedulaRucClienteSeleccionarOrdenCompra(InputText textCedulaRucClienteSeleccionarOrdenCompra) {
        this.textCedulaRucClienteSeleccionarOrdenCompra = textCedulaRucClienteSeleccionarOrdenCompra;
    }

    public InputText getTextCedulaRucOrdenCompra() {
        return textCedulaRucOrdenCompra;
    }

    public void setTextCedulaRucOrdenCompra(InputText textCedulaRucOrdenCompra) {
        this.textCedulaRucOrdenCompra = textCedulaRucOrdenCompra;
    }

    public InputText getTextClienteOrdenCompra() {
        return textClienteOrdenCompra;
    }

    public void setTextClienteOrdenCompra(InputText textClienteOrdenCompra) {
        this.textClienteOrdenCompra = textClienteOrdenCompra;
    }

    public InputText getTextDireccionClienteOrdenCompra() {
        return textDireccionClienteOrdenCompra;
    }

    public void setTextDireccionClienteOrdenCompra(InputText textDireccionClienteOrdenCompra) {
        this.textDireccionClienteOrdenCompra = textDireccionClienteOrdenCompra;
    }

    public InputText getTextFechaIngresoClienteOrdenCompra() {
        return textFechaIngresoClienteOrdenCompra;
    }

    public void setTextFechaIngresoClienteOrdenCompra(InputText textFechaIngresoClienteOrdenCompra) {
        this.textFechaIngresoClienteOrdenCompra = textFechaIngresoClienteOrdenCompra;
    }

    public InputText getTextNombreClienteSeleccionarOrdenCompra() {
        return textNombreClienteSeleccionarOrdenCompra;
    }

    public void setTextNombreClienteSeleccionarOrdenCompra(InputText textNombreClienteSeleccionarOrdenCompra) {
        this.textNombreClienteSeleccionarOrdenCompra = textNombreClienteSeleccionarOrdenCompra;
    }

    public InputText getTextNumeroNotaPedido() {
        return textNumeroNotaPedido;
    }

    public void setTextNumeroNotaPedido(InputText textNumeroNotaPedido) {
        this.textNumeroNotaPedido = textNumeroNotaPedido;
    }

    public InputText getTextNumeroOrdenCompra() {
        return textNumeroOrdenCompra;
    }

    public void setTextNumeroOrdenCompra(InputText textNumeroOrdenCompra) {
        this.textNumeroOrdenCompra = textNumeroOrdenCompra;
    }

    public InputTextarea getTextObservacionesOrdenCompra() {
        return textObservacionesOrdenCompra;
    }

    public void setTextObservacionesOrdenCompra(InputTextarea textObservacionesOrdenCompra) {
        this.textObservacionesOrdenCompra = textObservacionesOrdenCompra;
    }

    public InputText getTextPrioridadClienteOrdenCompra() {
        return textPrioridadClienteOrdenCompra;
    }

    public void setTextPrioridadClienteOrdenCompra(InputText textPrioridadClienteOrdenCompra) {
        this.textPrioridadClienteOrdenCompra = textPrioridadClienteOrdenCompra;
    }

    public InputText getTextTelefonoCelularOrdenCompra() {
        return textTelefonoCelularOrdenCompra;
    }

    public void setTextTelefonoCelularOrdenCompra(InputText textTelefonoCelularOrdenCompra) {
        this.textTelefonoCelularOrdenCompra = textTelefonoCelularOrdenCompra;
    }

    public InputText getTextTelefonoOrdenCompra() {
        return textTelefonoOrdenCompra;
    }

    public void setTextTelefonoOrdenCompra(InputText textTelefonoOrdenCompra) {
        this.textTelefonoOrdenCompra = textTelefonoOrdenCompra;
    }

    public InputText getTextTotalParesOrdenCompra() {
        return textTotalParesOrdenCompra;
    }

    public void setTextTotalParesOrdenCompra(InputText textTotalParesOrdenCompra) {
        this.textTotalParesOrdenCompra = textTotalParesOrdenCompra;
    }

    public InputText getTextTotalPrecioOrdenCompra() {
        return textTotalPrecioOrdenCompra;
    }

    public void setTextTotalPrecioOrdenCompra(InputText textTotalPrecioOrdenCompra) {
        this.textTotalPrecioOrdenCompra = textTotalPrecioOrdenCompra;
    }

    public InputText getTextVendedorOrdenCompra() {
        return textVendedorOrdenCompra;
    }

    public void setTextVendedorOrdenCompra(InputText textVendedorOrdenCompra) {
        this.textVendedorOrdenCompra = textVendedorOrdenCompra;
    }

    public List<Vendedor> getTablaVendedorSeleccionar() {
        return tablaVendedorSeleccionar;
    }

    public void setTablaVendedorSeleccionar(List<Vendedor> tablaVendedorSeleccionar) {
        this.tablaVendedorSeleccionar = tablaVendedorSeleccionar;
    }

    public Vendedor getTablaVendedorSeleccionarSeleccionado() {
        return tablaVendedorSeleccionarSeleccionado;
    }

    public void setTablaVendedorSeleccionarSeleccionado(Vendedor tablaVendedorSeleccionarSeleccionado) {
        this.tablaVendedorSeleccionarSeleccionado = tablaVendedorSeleccionarSeleccionado;
    }

    public InputText getTextCedulaRucVendedorSeleccionarOrdenCompra() {
        return textCedulaRucVendedorSeleccionarOrdenCompra;
    }

    public void setTextCedulaRucVendedorSeleccionarOrdenCompra(InputText textCedulaRucVendedorSeleccionarOrdenCompra) {
        this.textCedulaRucVendedorSeleccionarOrdenCompra = textCedulaRucVendedorSeleccionarOrdenCompra;
    }

    public InputText getTextNombreVendedorSeleccionarOrdenCompra() {
        return textNombreVendedorSeleccionarOrdenCompra;
    }

    public void setTextNombreVendedorSeleccionarOrdenCompra(InputText textNombreVendedorSeleccionarOrdenCompra) {
        this.textNombreVendedorSeleccionarOrdenCompra = textNombreVendedorSeleccionarOrdenCompra;
    }
    
    
    //-----------------Fin Getters and Setters ingreso ---------------------------
    //-----------------Fin Getters and Setters modificarDatos ---------------------------
   //_______________________________________________________________________________________________    
   //*********************Metodos generales************************  
   public void initComponentes(String form)
   {
//       String form="formDialogoIngresarAgregadoMateriaPrima";     
       if(form.equals("formDialogoIngresarOrdenCompra"))
       {
          String[] componentes={"textNumeroOrdenCompra",
                                "textNumeroNotaPedido",
                                 "calFechaEntregaOrdenCompra",
                                 "textCedulaRucOrdenCompra",
                                 "textClienteOrdenCompra",
                                 "textTelefonoOrdenCompra",
                                 "textTelefonoCelularOrdenCompra",
                                 "textPrioridadClienteOrdenCompra",
                                 "textDireccionClienteOrdenCompra",
                                 "textFechaIngresoClienteOrdenCompra",
                                 "textVendedorOrdenCompra",
                                 "textObservacionesOrdenCompra",
                                 "textTotalParesOrdenCompra",
                                 "textTotalPrecioOrdenCompra"}; 
            this.setComponentes(form,componentes);//obtiene los datos de la vista web y los carga en los componentes de esta clase
            List<String>listaComponentesEstilos=this.getEstilosTodosComponentes(form);
            this.setEstilosTodosComponentes(listaComponentesEstilos,form);
       }
       else if(form.equals("formDialogoSeleccionarClienteOrdenCompra"))
       {
          String[] componentes={"textCedulaRucClienteSeleccionarOrdenCompra",
                                "textNombreClienteSeleccionarOrdenCompra"}; 
            this.setComponentes(form,componentes);//obtiene los datos de la vista web y los carga en los componentes de esta clase
            List<String>listaComponentesEstilos=this.getEstilosTodosComponentes(form);
            this.setEstilosTodosComponentes(listaComponentesEstilos,form);
       }
       else if(form.equals("formDialogoSeleccionarVendedorOrdenCompra"))
       {
          String[] componentes={"textCedulaRucVendedorSeleccionarOrdenCompra",
                                "textNombreVendedorSeleccionarOrdenCompra"}; 
            this.setComponentes(form,componentes);//obtiene los datos de la vista web y los carga en los componentes de esta clase
            List<String>listaComponentesEstilos=this.getEstilosTodosComponentes(form);
            this.setEstilosTodosComponentes(listaComponentesEstilos,form);
       }
   }
   public void setComponentes(String form, String [] componente)// setea los componentes de vistas de con los componentes de esta clase
   {
       javax.faces.context.FacesContext facesContext = javax.faces.context.FacesContext.getCurrentInstance();
      
       javax.faces.component.UIViewRoot root = facesContext.getViewRoot();
//       System.out.println("valor del htmlselectone "+componente[0]+"   --- "+((HtmlSelectOneMenu)root.findComponent(form).findComponent(componente[0])).getValue());
       if(form.equals("formDialogoIngresarOrdenCompra"))
       {
           this.setTextNumeroOrdenCompra((InputText)root.findComponent(form).findComponent(componente[0]));
           this.setTextNumeroNotaPedido((InputText)root.findComponent(form).findComponent(componente[1]));
           this.setCalFechaEntregaOrdenCompra((Calendar)root.findComponent(form).findComponent(componente[2])); 
           this.setTextCedulaRucOrdenCompra((InputText)root.findComponent(form).findComponent(componente[3])); 
           this.setTextClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[4])); 
           this.setTextTelefonoOrdenCompra((InputText)root.findComponent(form).findComponent(componente[5])); 
           this.setTextTelefonoCelularOrdenCompra((InputText)root.findComponent(form).findComponent(componente[6])); 
           this.setTextPrioridadClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[7])); 
           this.setTextDireccionClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[8]));
           this.setTextFechaIngresoClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[9])); 
           this.setTextVendedorOrdenCompra((InputText)root.findComponent(form).findComponent(componente[10]));
           this.setTextObservacionesOrdenCompra((InputTextarea)root.findComponent(form).findComponent(componente[11]));
           this.setTextTotalParesOrdenCompra((InputText)root.findComponent(form).findComponent(componente[12]));
           this.setTextTotalPrecioOrdenCompra((InputText)root.findComponent(form).findComponent(componente[13]));
                 
       }
       else if(form.equals("formDialogoSeleccionarClienteOrdenCompra"))
       {              
           this.setTextCedulaRucClienteSeleccionarOrdenCompra((InputText)root.findComponent(form).findComponent(componente[0]));
           this.setTextNombreClienteSeleccionarOrdenCompra((InputText)root.findComponent(form).findComponent(componente[1]));           
       }
       else if(form.equals("formDialogoSeleccionarVendedorOrdenCompra"))
       {              
           this.setTextCedulaRucVendedorSeleccionarOrdenCompra((InputText)root.findComponent(form).findComponent(componente[0]));
           this.setTextNombreVendedorSeleccionarOrdenCompra((InputText)root.findComponent(form).findComponent(componente[1]));           
       }
       
    }
    public void resetComponentes(String form)
   {
       
//       System.out.println("valor del htmlselectone "+componente[0]+"   --- "+((HtmlSelectOneMenu)root.findComponent(form).findComponent(componente[0])).getValue());
       if(form.equals("formDialogoIngresarOrdenCompra"))
       {
           /*
           this.setTextNumeroOrdenCompra((InputText)root.findComponent(form).findComponent(componente[0]));
           this.setTextNumeroNotaPedido((InputText)root.findComponent(form).findComponent(componente[1]));
           this.setCalFechaEntregaOrdenCompra((Calendar)root.findComponent(form).findComponent(componente[2])); 
           this.setTextCedulaRucOrdenCompra((InputText)root.findComponent(form).findComponent(componente[3])); 
           this.setTextClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[4])); 
           this.setTextTelefonoOrdenCompra((InputText)root.findComponent(form).findComponent(componente[5])); 
           this.setTextTelefonoCelularOrdenCompra((InputText)root.findComponent(form).findComponent(componente[6])); 
           this.setTextPrioridadClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[7])); 
           this.setTextDireccionClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[8]));
           this.setTextFechaIngresoClienteOrdenCompra((InputText)root.findComponent(form).findComponent(componente[9])); 
           this.setTextVendedorOrdenCompra((InputText)root.findComponent(form).findComponent(componente[10]));
           this.setTextObservacionesOrdenCompra((InputTextarea)root.findComponent(form).findComponent(componente[11]));
           this.setTextTotalParesOrdenCompra((InputText)root.findComponent(form).findComponent(componente[12]));
           this.setTextTotalPrecioOrdenCompra((InputText)root.findComponent(form).findComponent(componente[13]));
              */   
       }
       else if(form.equals("formDialogoSeleccionarClienteOrdenCompra"))
       {              
           this.getTextCedulaRucClienteSeleccionarOrdenCompra().setValue("");
           this.getTextNombreClienteSeleccionarOrdenCompra().setValue("");  
           List <PedidoBean.tablaClienteSeleccionarOrdenCompra> tabla=new ArrayList<PedidoBean.tablaClienteSeleccionarOrdenCompra>();
           this.setTablaClienteSeleccionar(tabla);
           this.tablaClienteSeleccionarSeleccionado=new tablaClienteSeleccionarOrdenCompra();
       }
       else if(form.equals("formDialogoSeleccionarVendedorOrdenCompra"))
       {              
           this.getTextCedulaRucVendedorSeleccionarOrdenCompra().setValue("");
           this.getTextNombreVendedorSeleccionarOrdenCompra().setValue("");  
           List <Vendedor> tabla=new ArrayList<Vendedor>();
           this.setTablaVendedorSeleccionar(tabla);
           this.tablaVendedorSeleccionarSeleccionado=new Vendedor();
       }
    }
   //////////////////////////////////////////////////////////////////////////
    private List<String> getEstilosTodosComponentes(String form)
    {
        List<String>listaComponentesEstilos=new ArrayList<String>();
        return listaComponentesEstilos;
    }
    private void setEstilosTodosComponentes(List<String>listaComponentesEstilos, String form)
    {
        
    }
    
    public boolean esCamposVacios(List<Object>listaComponentes, String form)
    {
        boolean vacio=true;
       if(form.equals("formDialogoSeleccionarClienteOrdenCompra")||form.equals("formDialogoSeleccionarVendedorOrdenCompra"))
       {
           //verifica que los dos campos no esten vacios
           if(!(((InputText)listaComponentes.get(0)).getValue().toString().isEmpty()))
           {         
               try
               {
                   Long.parseLong(((InputText)listaComponentes.get(0)).getValue().toString().trim());
                   vacio=false;
               }
               catch(NumberFormatException nfe)
               {
                   vacio=true;
               }
           }
           if(!(((InputText)listaComponentes.get(1)).getValue().toString().isEmpty()))
           {            
               vacio=false;
           }
           
       }
        return vacio;
    }
    /////////////////////////////////////////////////////////////////////////////////
    //--seleccion cliente
    public void clicBotonSeleccionarClienteOrdenCompra() 
   {
       this.initComponentes("formDialogoSeleccionarClienteOrdenCompra");
       this.resetComponentes("formDialogoSeleccionarClienteOrdenCompra");
       this.initComponentes("formDialogoIngresarOrdenCompra");
   
        this.getTextCedulaRucOrdenCompra().setValue(""); 
        this.getTextClienteOrdenCompra().setValue(""); 
        this.getTextTelefonoOrdenCompra().setValue(""); 
        this.getTextTelefonoCelularOrdenCompra().setValue(""); 
        this.getTextPrioridadClienteOrdenCompra().setValue(""); 
        this.getTextDireccionClienteOrdenCompra().setValue("");
        this.getTextFechaIngresoClienteOrdenCompra().setValue("");
        JsfUtil.updateComponente("formDialogoIngresarOrdenCompra", ":DialogoIngresarOrdenCompra");        
        JsfUtil.mostrarDialogo("formDialogoIngresarOrdenCompra", "DialogoIngresarOrdenCompra", true);
        JsfUtil.mostrarDialogo("formDialogoSeleccionarClienteOrdenCompra", "DialogoSeleccionarClienteOrdenCompra", true);
        JsfUtil.updateComponente("formDialogoSeleccionarClienteOrdenCompra", ":DialogoSeleccionarClienteOrdenCompra"); 
   }
    public void clicBotonBuscarClienteOrdenCompraSeleccionar(String form)
    {
        this.initComponentes(form);
       List<Object>listaComponentes=new ArrayList<Object>();
        listaComponentes.add( this.getTextCedulaRucClienteSeleccionarOrdenCompra());           
        listaComponentes.add( this.getTextNombreClienteSeleccionarOrdenCompra());               
        
        System.out.println("List<String>listaComponentesEstilos----- +listaComponentesEstilos.get(0) ..... "+form);
        if(!this.esCamposVacios(listaComponentes,form))
        {
            String cedularuc=this.getTextCedulaRucClienteSeleccionarOrdenCompra().getValue().toString();
            String nombre=this.getTextNombreClienteSeleccionarOrdenCompra().getValue().toString().toUpperCase();
            
            String condicionE="", condicionP="";
            if(!cedularuc.isEmpty())
            {
                condicionP=" p.numerocedula like '"+cedularuc+"' ";
                condicionE=" e.ruc  like '"+cedularuc+"' ";
            }   
            
            if(!nombre.isEmpty())
            {
                condicionP=" p.nombrecliente like '%"+nombre+"%'";
                condicionE="  e.nombreempresa like '%"+nombre+"%' ";
            }
            
            if((!nombre.isEmpty())&&(!cedularuc.isEmpty()))
            {
                condicionP=" p.nombrecliente like '%"+nombre+"%' and p.numerocedula like '"+cedularuc+"' ";
                condicionE="  e.nombreempresa like '%"+nombre+"%' and e.ruc  like '"+cedularuc+"' ";
                
            }
            String query="Select p from Persona as p where "+condicionP ;
            List listapersona=this.getPedidoBean().getClienteController().findClientePersonaWhereOrderBy(query, true, -1, -1);
            query="Select e from Empresa as e where "+condicionE;
            List listaempresa=this.getPedidoBean().getClienteController().findClienteEmpresaWhereOrderBy(query, true, -1, -1);
            List <PedidoBean.tablaClienteSeleccionarOrdenCompra> tabla=new ArrayList<PedidoBean.tablaClienteSeleccionarOrdenCompra>();
            if(listapersona!=null)
            {                
                for(int i=0;i<listapersona.size();i++)
                {                    
                    tabla.add(new tablaClienteSeleccionarOrdenCompra((Persona)listapersona.get(i)));
                }
            }
            if(listaempresa!=null)
            {
                for(int i=0;i<listaempresa.size();i++)
                {
                    tabla.add(new tablaClienteSeleccionarOrdenCompra((Empresa)listaempresa.get(i)));
                }
            }
            this.setTablaClienteSeleccionar(tabla);
        }
        else
        {
            System.out.println("Error: Datos mal llenados o no están ingresados!");
            JsfUtil.mostrarMensajeJS("Error: Para la búsqueda de Cliente ingrese Cedula/RUC o el nombre del cliente");
            //this.resetComponentes(form);
        }
    }
    public void clicBotonTodosClienteOrdenCompraSeleccionar()
    {
        String query="Select p from Persona as p ";
        List listapersona=this.getPedidoBean().getClienteController().findClientePersonaWhereOrderBy(query, true, -1, -1);            
        query="Select p from Empresa as p ";
        List listaempresa=this.getPedidoBean().getClienteController().findClienteEmpresaWhereOrderBy(query, true, -1, -1);
        List <PedidoBean.tablaClienteSeleccionarOrdenCompra> tabla=new ArrayList<PedidoBean.tablaClienteSeleccionarOrdenCompra>();
        if(listapersona!=null)
        {                
            for(int i=0;i<listapersona.size();i++)
            {                    
                tabla.add(new tablaClienteSeleccionarOrdenCompra((Persona)listapersona.get(i)));
            }
        }
        if(listaempresa!=null)
        {
            for(int i=0;i<listaempresa.size();i++)
            {
                tabla.add(new tablaClienteSeleccionarOrdenCompra((Empresa)listaempresa.get(i)));
            }
        }
        this.setTablaClienteSeleccionar(tabla);
    }
   public void eventoFilaSeleccionadaTablaClienteSeleccionarOrdenCompra() 
   {//metodo carga los datos del ultimo horma seleccionado en el caso que se deseen actualizar
       
//       Modelocalzado mc= this.getModelocalzadoSeleccionado();     
//       this.setTablaClienteSeleccionarSeleccionado(tablaClienteSeleccionarSeleccionado)ModelocalzadoSeleccionado(mc);       
       System.out.println("eventoFilaSeleccionadaTablaConsultarModelocalzado "+this.getTablaClienteSeleccionarSeleccionado().getNumerocliente());
   }
   public void clicBotonSeleccionarClienteOrdenCompraSeleccionar(String form) 
   {
       this.initComponentes(form);
       if(this.getTablaClienteSeleccionarSeleccionado()!=null)
       {
           this.initComponentes("formDialogoIngresarOrdenCompra");
           if(this.getTablaClienteSeleccionarSeleccionado().getPersona()!=null)
           {
               Persona p=this.getTablaClienteSeleccionarSeleccionado().getPersona();
                this.getTextCedulaRucOrdenCompra().setValue(p.getNumerocedula()); 
                this.getTextClienteOrdenCompra().setValue(p.getNombrecliente()); 
                this.getTextTelefonoOrdenCompra().setValue(p.getTelefono()); 
                this.getTextTelefonoCelularOrdenCompra().setValue(p.getTelefonocelular()); 
                this.getTextPrioridadClienteOrdenCompra().setValue(p.getPrioridadcliente()); 
                this.getTextDireccionClienteOrdenCompra().setValue(p.getDireccion());
                this.getTextFechaIngresoClienteOrdenCompra().setValue(JsfUtil.convertirFecha(p.getFechaingreso())); 
           }
           else if(this.getTablaClienteSeleccionarSeleccionado().getEmpresa()!=null)
           {
               Empresa e=this.getTablaClienteSeleccionarSeleccionado().getEmpresa();
                this.getTextCedulaRucOrdenCompra().setValue(e.getNumerocliente()); 
                this.getTextClienteOrdenCompra().setValue(e.getNombreempresa()); 
                this.getTextTelefonoOrdenCompra().setValue(e.getTelefono()); 
                this.getTextTelefonoCelularOrdenCompra().setValue(e.getTelefonocelular()); 
                this.getTextPrioridadClienteOrdenCompra().setValue(e.getPrioridadcliente()); 
                this.getTextDireccionClienteOrdenCompra().setValue(e.getDireccion());
                this.getTextFechaIngresoClienteOrdenCompra().setValue(JsfUtil.convertirFecha(e.getFechaingreso())); 
           }
           JsfUtil.updateComponente("formDialogoIngresarOrdenCompra", ":DialogoIngresarOrdenCompra");
           JsfUtil.mostrarDialogo("formDialogoSeleccionarClienteOrdenCompra", "DialogoSeleccionarClienteOrdenCompra", false);
           JsfUtil.mostrarDialogo("formDialogoIngresarOrdenCompra", "DialogoIngresarOrdenCompra", true);
       }
       else
       {
           JsfUtil.mostrarMensajeJS("Error: Seleccione un/el Cliente en la tabla!");
       }
       
   }
   public void clicBotonCancelarSeleccionarClienteOrdenCompraSeleccionar() 
   {
       
   }
   
   //--seleccion vendedor
   public void clicBotonSeleccionarVendedorOrdenCompra() 
   {
       this.initComponentes("formDialogoSeleccionarVendedorOrdenCompra");
       this.resetComponentes("formDialogoSeleccionarVendedorOrdenCompra");
       this.initComponentes("formDialogoIngresarOrdenCompra");
   
        this.getTextVendedorOrdenCompra().setValue(""); 
        
        JsfUtil.updateComponente("formDialogoIngresarOrdenCompra", ":DialogoIngresarOrdenCompra");        
        JsfUtil.mostrarDialogo("formDialogoIngresarOrdenCompra", "DialogoIngresarOrdenCompra", true);
        JsfUtil.mostrarDialogo("formDialogoSeleccionarVendedorOrdenCompra", "DialogoSeleccionarVendedorOrdenCompra", true);
        JsfUtil.updateComponente("formDialogoSeleccionarVendedorOrdenCompra", ":DialogoSeleccionarVendedorOrdenCompra"); 
   }
   public void clicBotonBuscarVendedorOrdenCompraSeleccionar(String form)
    {
        this.initComponentes(form);
       List<Object>listaComponentes=new ArrayList<Object>();
        listaComponentes.add( this.getTextCedulaRucVendedorSeleccionarOrdenCompra());           
        listaComponentes.add( this.getTextNombreVendedorSeleccionarOrdenCompra());               
        
        System.out.println("List<String>listaComponentesEstilos----- +listaComponentesEstilos.get(0) ..... "+form);
        if(!this.esCamposVacios(listaComponentes,form))
        {
            String cedularuc=this.getTextCedulaRucVendedorSeleccionarOrdenCompra().getValue().toString();
            String nombre=this.getTextNombreVendedorSeleccionarOrdenCompra().getValue().toString().toUpperCase();
            
            String condicionE="";
            if(!cedularuc.isEmpty())
            {   
                if(cedularuc.length()>10)
                    condicionE=" e.numeroruc  like '"+cedularuc+"' ";
                else
                   condicionE=" e.numerocedula  like '"+cedularuc+"' "; 
            }   
            
            if(!nombre.isEmpty())
            {
                condicionE="  e.nombrevendedor like '%"+nombre+"%' ";
            }
            
            if((!nombre.isEmpty())&&(!cedularuc.isEmpty()))
            {
                condicionE="  e.nombrevendedor like '%"+nombre+"%' and  ";
                if(cedularuc.length()>10)
                    condicionE+=" e.numeroruc  like '"+cedularuc+"' ";
                else
                   condicionE+=" e.numerocedula  like '"+cedularuc+"' "; 
                
            }
            String query="Select e from Vendedor as e where "+condicionE ;
            List<Vendedor> listaVendedor=this.getPedidoBean().getVendedorController().findVendedorWhereOrderBy(query, true, -1, -1);
            this.setTablaVendedorSeleccionar(listaVendedor);                        
        }
        else
        {
            System.out.println("Error: Datos mal llenados o no están ingresados!");
            JsfUtil.mostrarMensajeJS("Error: Para la búsqueda de Cliente ingrese Cedula/RUC o el nombre del cliente");
            //this.resetComponentes(form);
        }
    }
    public void clicBotonTodosVendedorOrdenCompraSeleccionar()
    {
        String query="Select p from Vendedor as p ";
        List <Vendedor> listavendedor=this.getPedidoBean().getVendedorController().findVendedorWhereOrderBy(query, true, -1, -1);            
        
        this.setTablaVendedorSeleccionar(listavendedor);
    }
   
   public void clicBotonSeleccionarVendedorOrdenCompraSeleccionar(String form) 
   {
       this.initComponentes(form);
       if(this.getTablaVendedorSeleccionarSeleccionado()!=null)
       {
           this.initComponentes("formDialogoIngresarOrdenCompra");
          
           this.getTextVendedorOrdenCompra().setValue(this.getTablaVendedorSeleccionarSeleccionado().getNombrevendedor()); 
                
           JsfUtil.updateComponente("formDialogoIngresarOrdenCompra", ":DialogoIngresarOrdenCompra");
           JsfUtil.mostrarDialogo("formDialogoSeleccionarClienteOrdenCompra", "DialogoSeleccionarClienteOrdenCompra", false);
           JsfUtil.mostrarDialogo("formDialogoIngresarOrdenCompra", "DialogoIngresarOrdenCompra", true);
       }
       else
       {
           JsfUtil.mostrarMensajeJS("Error: Seleccione un/el Cliente en la tabla!");
       }
       
   }
   public void clicBotonCancelarSeleccionarVendedorOrdenCompraSeleccionar() 
   {
       
   }
   //-- agregar item
        //-- seleccion modelo calzado
        
       //-- seleccion Cuero
       //-- seleccion Tacosuela
       //--detalle de cantidad de pares
   //-- quitar item
}
